package com.dianxin.smartpark.service.vo.attendance;

import com.chinatelecom.response.common.BaseDO;
import com.dianxin.smartpark.dao.dataobject.attendance.*;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

public class SmartParkAttendanceGroupVO extends BaseDO implements Serializable {
    /**
     * 考勤组类型（0：固定班次，1：周期排班）
     */
    private Integer attendanceGroupType;

    /**
     * 考勤组名称
     */
    private String attendanceGroupName;

    /**
     * 考勤组启用状态（1：启用，0：未启用）
     */
    private Integer enableStatus;

    /**
     * 同步法定节假日
     */
    private Integer legalHolidayEnableStatus;

    /**
     * 门禁打卡启用状态（1：启用，0：未启用）
     */
    private Integer entranceGuardEnableStatus;

    /**
     * APP打卡启用状态（1：启用，0：未启用）
     */
    private Integer appClockInEnableStatus;

    /**
     * APP打卡范围
     */
    private Integer appClockInRange;

    /**
     * 范围外打卡
     */
    private Integer outOfRangeClockIn;

    /**
     * 范围为打卡状态
     */
    private Integer outOfRangeClockInStatus;

    /**
     * 备注
     */
    private String remarks;

    /**
     * 租户编号
     */
    private String tenantId;

    /**
     * 考勤对象
     */
    private String attendanceObject;

    /**
     * smart_park_attendance_group
     */
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    private Long id;
    private String creator;
    private Date gmtCreate;
    private Date gmtModified;
    private String modifier;

    private SmartParkShift smartParkShift;

    public SmartParkShift getSmartParkShift() {
        return smartParkShift;
    }

    public void setSmartParkShift(SmartParkShift smartParkShift) {
        this.smartParkShift = smartParkShift;
    }

    /**
     * 考勤组门禁设备
     */
    private List<SmartParkGroupAccessControl> accessControls;

    /**
     * APP打卡地址
     */
    private List<SmartParkGroupAddress> addressList;

    /**
     * 考勤组特殊日期
     */
    private List<SmartParkGroupSpecialDate> specialDates;

    /**
     * 考勤组工作日
     */
    private List<SmartParkGroupWeekdays> weekdaysList;

    /**
     * 考勤组考勤对象
     */
    private List<SmartParkGroupObject> objectList;

    /**
     * 考勤组白名单
     */
    private List<SmartParkGroupWhiteList> whiteList;

    /**
     * 考勤组类型（0：固定班次，1：周期排班）
     * @return attendance_group_type 考勤组类型（0：固定班次，1：周期排班）
     */
    public Integer getAttendanceGroupType() {
        return attendanceGroupType;
    }

    /**
     * 考勤组类型（0：固定班次，1：周期排班）
     * @param attendanceGroupType 考勤组类型（0：固定班次，1：周期排班）
     */
    public void setAttendanceGroupType(Integer attendanceGroupType) {
        this.attendanceGroupType = attendanceGroupType;
    }

    /**
     * 考勤组名称
     * @return attendance_group_name 考勤组名称
     */
    public String getAttendanceGroupName() {
        return attendanceGroupName;
    }

    /**
     * 考勤组名称
     * @param attendanceGroupName 考勤组名称
     */
    public void setAttendanceGroupName(String attendanceGroupName) {
        this.attendanceGroupName = attendanceGroupName == null ? null : attendanceGroupName.trim();
    }

    /**
     * 考勤组启用状态（0：启用，1：未启用）
     * @return enable_status 考勤组启用状态（0：启用，1：未启用）
     */
    public Integer getEnableStatus() {
        return enableStatus;
    }

    /**
     * 考勤组启用状态（0：启用，1：未启用）
     * @param enableStatus 考勤组启用状态（0：启用，1：未启用）
     */
    public void setEnableStatus(Integer enableStatus) {
        this.enableStatus = enableStatus;
    }

    /**
     * 同步法定节假日
     * @return legal_holiday_enable_status 同步法定节假日
     */
    public Integer getLegalHolidayEnableStatus() {
        return legalHolidayEnableStatus;
    }

    /**
     * 同步法定节假日
     * @param legalHolidayEnableStatus 同步法定节假日
     */
    public void setLegalHolidayEnableStatus(Integer legalHolidayEnableStatus) {
        this.legalHolidayEnableStatus = legalHolidayEnableStatus;
    }

    /**
     * 门禁打卡启用状态（0：启用，1：未启用）
     * @return entrance_guard_enable_status 门禁打卡启用状态（0：启用，1：未启用）
     */
    public Integer getEntranceGuardEnableStatus() {
        return entranceGuardEnableStatus;
    }

    /**
     * 门禁打卡启用状态（0：启用，1：未启用）
     * @param entranceGuardEnableStatus 门禁打卡启用状态（0：启用，1：未启用）
     */
    public void setEntranceGuardEnableStatus(Integer entranceGuardEnableStatus) {
        this.entranceGuardEnableStatus = entranceGuardEnableStatus;
    }

    /**
     * APP打卡启用状态（0：启用，1：未启用）
     * @return app_clock_in_enable_status APP打卡启用状态（0：启用，1：未启用）
     */
    public Integer getAppClockInEnableStatus() {
        return appClockInEnableStatus;
    }

    /**
     * APP打卡启用状态（0：启用，1：未启用）
     * @param appClockInEnableStatus APP打卡启用状态（0：启用，1：未启用）
     */
    public void setAppClockInEnableStatus(Integer appClockInEnableStatus) {
        this.appClockInEnableStatus = appClockInEnableStatus;
    }

    /**
     * APP打卡范围
     * @return app_clock_in_range APP打卡范围
     */
    public Integer getAppClockInRange() {
        return appClockInRange;
    }

    /**
     * APP打卡范围
     * @param appClockInRange APP打卡范围
     */
    public void setAppClockInRange(Integer appClockInRange) {
        this.appClockInRange = appClockInRange;
    }

    /**
     * 范围外打卡
     * @return out_of_range_clock_in 范围外打卡
     */
    public Integer getOutOfRangeClockIn() {
        return outOfRangeClockIn;
    }

    /**
     * 范围外打卡
     * @param outOfRangeClockIn 范围外打卡
     */
    public void setOutOfRangeClockIn(Integer outOfRangeClockIn) {
        this.outOfRangeClockIn = outOfRangeClockIn;
    }

    /**
     * 范围为打卡状态
     * @return out_of_range_clock_in_status 范围为打卡状态
     */
    public Integer getOutOfRangeClockInStatus() {
        return outOfRangeClockInStatus;
    }

    /**
     * 范围为打卡状态
     * @param outOfRangeClockInStatus 范围为打卡状态
     */
    public void setOutOfRangeClockInStatus(Integer outOfRangeClockInStatus) {
        this.outOfRangeClockInStatus = outOfRangeClockInStatus;
    }

    /**
     * 备注
     * @return remarks 备注
     */
    public String getRemarks() {
        return remarks;
    }

    /**
     * 备注
     * @param remarks 备注
     */
    public void setRemarks(String remarks) {
        this.remarks = remarks == null ? null : remarks.trim();
    }

    /**
     * 租户编号
     * @return tenant_id 租户编号
     */
    public String getTenantId() {
        return tenantId;
    }

    /**
     * 租户编号
     * @param tenantId 租户编号
     */
    public void setTenantId(String tenantId) {
        this.tenantId = tenantId == null ? null : tenantId.trim();
    }

    /**
     * 考勤对象
     * @return attendance_object 考勤对象
     */
    public String getAttendanceObject() {
        return attendanceObject;
    }

    /**
     * 考勤对象
     * @param attendanceObject 考勤对象
     */
    public void setAttendanceObject(String attendanceObject) {
        this.attendanceObject = attendanceObject == null ? null : attendanceObject.trim();
    }

    @Override
    public Long getId() {
        return id;
    }

    @Override
    public void setId(Long id) {
        this.id = id;
    }

    @Override
    public String getCreator() {
        return creator;
    }

    @Override
    public void setCreator(String creator) {
        this.creator = creator;
    }

    @Override
    public Date getGmtCreate() {
        return gmtCreate;
    }

    @Override
    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    @Override
    public Date getGmtModified() {
        return gmtModified;
    }

    @Override
    public void setGmtModified(Date gmtModified) {
        this.gmtModified = gmtModified;
    }

    @Override
    public String getModifier() {
        return modifier;
    }

    @Override
    public void setModifier(String modifier) {
        this.modifier = modifier;
    }

    public List<SmartParkGroupAccessControl> getAccessControls() {
        return accessControls;
    }

    public void setAccessControls(List<SmartParkGroupAccessControl> accessControls) {
        this.accessControls = accessControls;
    }

    public List<SmartParkGroupAddress> getAddressList() {
        return addressList;
    }

    public void setAddressList(List<SmartParkGroupAddress> addressList) {
        this.addressList = addressList;
    }

    public List<SmartParkGroupSpecialDate> getSpecialDates() {
        return specialDates;
    }

    public void setSpecialDates(List<SmartParkGroupSpecialDate> specialDates) {
        this.specialDates = specialDates;
    }

    public List<SmartParkGroupWeekdays> getWeekdaysList() {
        return weekdaysList;
    }

    public void setWeekdaysList(List<SmartParkGroupWeekdays> weekdaysList) {
        this.weekdaysList = weekdaysList;
    }

    public List<SmartParkGroupObject> getObjectList() {
        return objectList;
    }

    public void setObjectList(List<SmartParkGroupObject> objectList) {
        this.objectList = objectList;
    }

    public List<SmartParkGroupWhiteList> getWhiteList() {
        return whiteList;
    }

    public void setWhiteList(List<SmartParkGroupWhiteList> whiteList) {
        this.whiteList = whiteList;
    }
}